package com.py.framework.dao;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.framework.entity.DictDetailEntity;
import com.py.framework.entity.DictEntity;

/**
 * 字典Dao
 * @author Leegern
 * @date   2018年4月20日
 */
public interface SysDictDao {
	
	/**
	 * 添加字典信息
	 * @param entity 字典实体
	 * @return
	 */
	int addDict(DictEntity entity);
	
	/**
	 * 分页查询字典信息
	 * @param params
	 * @return
	 */
	List<DictEntity> queryDictListForPage(Map<String, Object> params);
	
	/**
	 * 根据Id查询字典数据
	 * @param id 主键
	 * @return
	 */
	DictEntity fineOneDict(@Param("id") long id);
	
	/**
	 * 批量更新字典
	 * @param params 
	 * @return
	 */
	int batchUpdateDictStatus(Map<String, Object> params);
	
	/**
	 * 更新字典信息
	 * @param entity 字典实体
	 * @return
	 */
	int updateDict(DictEntity entity);
	
	/**
	 * 添加字典明细信息
	 * @param entity 字典明细实体
	 * @return
	 */
	int addDictDetail(DictDetailEntity entity);
	
	/**
	 * 分页查询字典明细信息
	 * @param params
	 * @return
	 */
	List<DictDetailEntity> queryDictDetailListForPage(Map<String, Object> params);
	
	/**
	 * 根据Id查询字典明细
	 * @param id 主键
	 * @return
	 */
	DictDetailEntity fineOneDictDetail(@Param("id") long id);
	
	/**
	 * 批量更新字典明细
	 * @param params 
	 * @return
	 */
	int batchUpdateDictDetailStatus(Map<String, Object> params);
	
	/**
	 * 更新字典明细信息
	 * @param entity 字典明细实体
	 * @return
	 */
	int updateDictDetail(DictDetailEntity entity);
	
	/**
	 * 根据字典明细键判断是否有重复数据
	 * @param dtlKey    明细键
	 * @param dictId    字典Id
	 * @param dictDetailId 字典明细Id
	 * @return
	 */
	List<DictDetailEntity> getDictDetailByKey(Map<String, Object> params);
	
	/**
	 * 根据字典KEY值和明细KEY获取字典详情数据
	 * @param dictKey 字典KEY值
	 * @param dtlKey  明细KEY值
	 * @return
	 */
	List<DictDetailEntity> getDictDetails(@Param("dictKey")String dictKey, @Param("dtlKey")String dtlKey);

	List<LinkedHashMap> seletctDictInfo();
	
	/**
	 * 根据dicKey查询字典数据
	 * @param id 主键
	 * @return
	 */
	List<DictEntity> fineSameDict(@Param("dictKey") String dictKey);
}